//导入数据库 连接模块
const db = require('../db/index')
//导入处理密码模块
const bcrypt = require('bcryptjs')




//获取用户信息的处理函数
exports.getUserInfo = (req,res) => {

    const sql ='select id,username,nickname,email,user_pic from ev_users where id=?'
    db.query(sql, req.user.id,(err,results) =>{
        if(err) return res.cc(err)
        
        if(results.length !== 1) return res.cc('获取用户信息失败')


        res.send({
                status:0,
                message:'获取用户信息 ----- 成功'
        })
        
    })
}


//更新用户基本信息的处理函数
exports.updateUserInfo = (req,res) =>{
    
    const sql ='update ev_users set?where id=?'
    db.query(sql,[req.body,req.body.id],(err,results) => {
        //执行sql失败
        if(err) return res.cc(err)
        
        if(results.affectedRows !==1) return res.cc('更新用户的基本信息失败！！！')
    
            res.cc('更新用户信息成功',0)
        })





}

//更新用户密码的处理函数
exports.updatePassword = (req,res) => {
    const sql =`select * from ev_users where id=?`

    db.query(sql,req.user.id,(err,results)=>{
        //执行SQL语句失败提示信息
        if(err) return res.cc(err)
        //判断结果是否存在
        if(results.length !==1) return res.cc('用户不存在')



        //判断密码是否正确
        const compareResult = bcrypt.compareSync(req.body.oldPwd,results[0].password)
        if(!compareResult) return res.cc('旧密码错误')

        //更新密码
        const sql =`update ev_users set password=?where id=?`
        //对新密码进行加密处理
        const newPwd = bcrypt.hashSync(req.body.newPwd,10)
        //调用db.query 执行SQL语句
        db.query(sql,[newPwd,req.user.id],(err,results) =>{
            if(err) return res.cc(err)
            if(results.affectedRows !==1) return res.cc('更新密码失败')
            
            res.cc('更新密码成功',0)
        })
    })
}



//更新用户头像处理函数
exports.updateAvatar = (req,res) => {
    const sql = `update ev_users set user_pic=? where id=?`
    db.query(sql,[req.body.avatar, req.user.id],(err,results) =>{
        if(err) return res.cc(err)

        if(results.affectedRows !==1) return res.cc('更新头像失败')

        res.cc('更新头像成功',0)
    })
}